perm filename SAILUP.DOC[NET,GUE] blob
sn#032735 filedate 1973-03-31 generic text, type T, neo UTF8
C-MU SAIL Manual Update
(Updates C-MU manual dated May, 1970 and Update of 23-AUG-71.)
Feb. 17, 1972
A. The reserved words IFNDEFINE and IFDEFINE have been added.
Syntactically, either may appear any place the word DEFINE can
appear. Semantically,
IFNDEFINE AA="<mumble>",
BB="<foo>",
CC="<garp>";
is identical to the same construct with DEFINE replacing the
IFNDEFINE if the identifier AA has no meaning, i.e., AA has not been
previously declared or defined and it is not a reserved word or
predeclared procedure. If AA already has meaning, the entire
construct has no effect.
The similar construct with IFDEFINE is identical except that
the test is reversed; i.e., the id's are (re)defined only if AA (the
first one) already has meaning, otherwise it is a no-op.
Note that in both cases, the test for the entire construct
depends only on the first id.
(Both this addition and the BIGCOMMENT!--STOPCOMMENT!
constructs were implemented because of a desperate need for some
conditional compilation facilities. They are far from pleasing or
complete; however, they were easy to implement. Within six
months(?), we hope to have a new version of SAIL which has a much
nicer conditional macro facility; in the interim, a surprisingly
large number of things can be done with these primitives. When the
new SAIL arrives, every attempt will be made to retain these
primitives to insure compatability.)